import static java.lang.Math.pow;

/**
 * Created with IntelliJ IDEA.
 * Description:快乐数
 * User: bjc
 * Date: 2025-11-03
 * Time: 15:31
 */
public class Test03_isHappy {
    public static boolean isHappy(int n) {
        int slow = n;
        int fast = n;
        while(true){
            slow = calc(slow);
            fast = calc(calc(fast));
            if(slow == fast){ // 快慢指针相遇，判断所指向的数值是否是1，如果是1，说明已经是1在循环，不是1，则说明是其他值循环，不是快乐数。
                return slow == 1;
            }
        }
    }
    //计算输入数字的每一位的平方和
    public static int calc(int n){
        int result = 0;
        while(n != 0){
            int tmp = n % 10;
            n /= 10;
            result += tmp * tmp;
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(isHappy(1));

    }
}
